package ar.edu.caece.compiler.grammar.nonterminals;

import ar.edu.caece.compiler.grammar.NonTerminalSymbol;
import ar.edu.caece.compiler.grammar.terminals.FinParentesisToken;
import ar.edu.caece.compiler.grammar.terminals.InicioParentesisToken;
import ar.edu.caece.compiler.grammar.terminals.ProcedimientoToken;
import ar.edu.caece.compiler.grammar.terminals.PuntoComaToken;

public class BLOQUE1 extends NonTerminalSymbol implements BLOQUE {

	private ProcedimientoToken procedimientoToken;
	private NOMBREP nombrep;
	private InicioParentesisToken inicioParentesisToken;
	private PARAMETROS parametros;
	private FinParentesisToken finParentesisToken;
	private PuntoComaToken puntoComaToken;
	private ALTERP alterp;
	
	public BLOQUE1(ProcedimientoToken procedimientoToken, NOMBREP nombrep,
			InicioParentesisToken inicioParentesisToken, PARAMETROS parametros,
			FinParentesisToken finParentesisToken,
			PuntoComaToken puntoComaToken, ALTERP alterp) {
		super();
		this.procedimientoToken = procedimientoToken;
		this.nombrep = nombrep;
		this.inicioParentesisToken = inicioParentesisToken;
		this.parametros = parametros;
		this.finParentesisToken = finParentesisToken;
		this.puntoComaToken = puntoComaToken;
		this.alterp = alterp;
	}

	@Override
	public String getRepresentation() {
		return "{"+this.getClass().getSimpleName()+" -> "+procedimientoToken.getRepresentation()+" "+inicioParentesisToken.getRepresentation()+" "+parametros.getRepresentation()+" "+finParentesisToken.getRepresentation()
		+" "+puntoComaToken.getRepresentation()+" "+alterp.getRepresentation()+"}";
	}

	public ProcedimientoToken getProcedimientoToken() {
		return procedimientoToken;
	}

	public NOMBREP getNombrep() {
		return nombrep;
	}

	public InicioParentesisToken getInicioParentesisToken() {
		return inicioParentesisToken;
	}

	public PARAMETROS getParametros() {
		return parametros;
	}

	public FinParentesisToken getFinParentesisToken() {
		return finParentesisToken;
	}

	public PuntoComaToken getPuntoComaToken() {
		return puntoComaToken;
	}

	public ALTERP getAlterp() {
		return alterp;
	}

}
